General purpose associative processor

ABSTRACT

A solid state associative chip memory system including an array of structurally identical elements each of which contains an integral number of bits. The system is independent of the length of each data word and the total number of words since any required word length may be obtained by horizontally connecting the proper number of associative chips and any processor size may be obtained by vertically connecting associative words. The system provides an array processor which has a distributed (in memory) logic that is capable of processing information while remaining in memory and is capable of simultaneous operations for solving problems in real time.

United States Patent 11 1 Shore et al.

1451 Sept. 4, 1973 GENERAL PURPOSE ASSOCIATIVE PROCESSOR [75] Inventors: John E. Shore, Washington, D.C.;

Frank A. Polltlnghurn, Jn, Oxon Hill, Md.

[73] Assignee: The United States of America as represented by the Secretary of the Navy, Washington, D.C.

1221 Filed: o1.9, I970 121 Appl. No.: 79,415

3,576,436 4/1911 Lindquist..................... 340/113 AM 3,402,398 9/1968 Koerner a n. 340/113 AM 3,533,0ss 10/1970 Murphey 340/173 AM Primary Examiner-Stanley M. Urynowicz, Jr. Attorney-R. S. Sciascia, Arthur Branning, .I. G. Murray and M. E. Crane 5 7 ABSTRACT A solid state associative chip memory system including an array of structurally identical elements each of which contains an integral number of bits. The system is independent of the length of each data word and the total number of words since any required word length may be obtained by horizontally connecting the proper number of associative chips and any processor size may be obtained by vertically connecting associative words. The system provides an array processor which has a [s6] cued distributed (in memory) logic that is capable of pro- UNITED STATES PATENTS cessing information while remaining in memory and is 3,576,436 4/197! Lindquist 340/!73 AM capable of simultaneous operations for solving prob- 3,644,904 2/1972 Baker 340/l73 AM lgms in real time. 3,402,394 9/l968 Koerner et al. 340/[73 AM 3,483,528 l2ll969 Koerner 340/[73 AM 1 Claim, 20 Drawing Figures son j l cow ,3:

l l SGt H:

l l l F P-u I l l I M0! 35 $EARON WMMAND MULYI -ADD COMMAND MULTl WRITE COMMAND UR"! COMMAND ADO OONIIAND REM) GONIIAND RESET Rl l 4J as m ,4!

J? firth I g l mos J sum u1nr1a FIG. I

SDR

j/az

COMP

Ill]

MGR

s mm m m N mm v m an I m M AA w m R mm 4 5 E m 5 N M Mm A JF Y B i R 3 6 4 3 D N DA mm mwwo A0 N D M G E A D N M WM WWWOMMB A C M O R H- wool C I E RTTT DE L oans .iwwwwuu v PATENTEB 4975 3.757. 312

SHEU 02 0F 13 MAIN PRocEssoR /-42 GP COMPUTER Ip l aa- 235.2%; (SEE FIGURE I QNE 1 I L No. DESCRIPTION OF THE LINE OGCURANCE 1 GOMPLEMENT OF THE SDR (INPUT) EVERY BIT 2 FROM COMPARAND EVERY an 3 FROM $01 EVERY an 4 FROM scz EVERY BIT 5 CONNECTION FROM READ BUS oNcE PER CHIP s FLIP-FLOP OUTPUT WHEN READ aus Is HIGH EVERY an 1 CONNECTION FROM WRITE aus oNcE PER CHIP e CONNECTION FROM ADD eus oNcE PER CHIP 9 GARRY FROM BIT n-I oNcE PER CHIP Io CARRY TO BIT n I oNcE PER CHIP II SET ALL REMAINING REsPoNsEs IN SYLLABLE oNcE PER CHIP 12 SET ALL REMAINING REsPoNsEs IN SYLLABLE oNcE PER CHIP 13 REsPoNsE LINE FROM MORE SIGNIFICANT BITS oNcE PER sum 14 REsPoNsE LINE OUTPUT oNcE PER cum I: MOR INPUT EVERY BIT Is CLOCK (NOT SHOWN) ONCE PER CHIP PowER (NOT SHOWN) oNcE PER CHIP GROUND (NOT SHOWN) oNcE PER CHIP INVENTORS JOHN E. SHORE AGENT ATFORNE Y Pmmmw' sum a: nr 13 FIG. 3

PDaPD 04 I SDR COMP

MOR

READ BUS SCI 7 TO AMOB INVENTORS JOHN E. SHORE FRANK A. POL K/NGHORN JR.

AGENT ATTORNEY Pmmww' 3.167. 312

SHEU 0 0F 13 MOR com SDR an an an J 6% AM BIT -i" 6 0 fl M ADD aus INVENTORS JOHN E. SHORE FRANK A. POL/(I/VGHORN, JR.

BY AGENT ATTORNEY SEARCH FOR "1 ON an SLICE N (EXACT MATCH) FIG. 6

8, LEFT SHIFTED "-1 BITS, GATED omo comp MULTI- ADD TO THOSE WORD-SLICES WITH THE RB SET INVENTORS JOHN E. SHORE FRANK A. POLK/NG'HORN, JR.

BY AGENT ATTORNEY FIG. 7

COMPARE COMP BIT WITH BIT IN AM COMP AM COMP AM com AM FOR E FORGE R HFGH R men FORCE R men m ALL LOWER ORDER ans OF THE Y 00 NOT YES 15 THIS 5 ABLE FORCE THE LEAST R sue. an?

FORGE R HIGH INVENTORS JOHN E. SHORE FRANK A. POLKINGHORW, JR.

BY AGENT ATTORNEY PATENIED sum 07 or 13 \N uwzolmum 9w mam Uta;

mnm Q04 mom :5

INVENTORS JOHN E. SHORE FRANK A. POLK/NGHORN, JR.

BY AGENT ATTORNEY Pmmsow' 3.751. 312

saw us or 13 FIG. 9 :1

no D f :D OIO E E FIG. I20

d. LEAST SIGNIFICANT BIT ATTORNEY Pmmznw' 3.151. 312

b. THE SECOND BIT FIG. I06

c. THE LEAST SIGNIFICANT BIT INVENTORS JOHN E. SHORE FRANK A. POLK/N6WORN,JR.

BY AGENT ATTORNEY FIG. /2a

0. MOST SIGNIFICANT BIT b. SECOND MOST SIGNIFICANT BIT C. THIRD MOST SIGNIFICANT BIT INVENTORS JOHN E. SHORE FRANK A. POLKINGHORN, JR.

BY AGENT ATTORNEY Pmmrnw' men- PRF CLOCK SHEEI 12 HF 13 FIG. /4

CONTROL CONTROL BIT BIT NO.I NO.2 BELOW ABOVE COMP POINT 0 IN FIG. 3

FIG. 13

MPP

H [L FLH INVENTORS JOHN E. SHORE FRANK A. POL KING/106W, JR

BY AGENT ATTORNEY PAIENIED 4575 saw -13 ur13 FIG. /5

NO. DESCRIPTION OF LINE I MOR INPUT TO RS 2 COMP INPUT TO CHIP 3 SCI INPUT TO CHIP 4 502 INPUT TO CHIP 5 SCI INPUT TO RS 6 S02 INPUT T0 RS I WRITE INPUT TO CHIP 8 ADD INPUT TO CHIP 9 COMP INPUT T0 RS IO ASSOCIATIVE SEARCH LINE I l MULTI-WRITE LINE l2 MULTI-ADD LINE I4 RESPONSE OUTPUT OF RS l5 MOR INPUT TO CHIP I? READ LINE l8 READ BUS l9 ADD BUS 2O WRITE BUS 2| WORD-SLICE RESPONSE 22 CONVENTIONAL WRITE LINE 23 CONVENTIONAL ADD LINE 24 ADDRESS SELECT LINE 25 RESET RB LINE INVENTORS AGENT ATTORNEY 1 GENERAL PURPOSE ASSOCIATIVE PROCESSOR STATEMENT OF GOVERNMENT INTEREST The invention described herein may be manufactured and used by or for The Government of the United States of America for governmental purposes without the payment of any royalties thereon or therefor.

BACKGROUND OF THE INVENTION Since the introduction of the modern general purpose computer, processing speeds have increased by several orders of magnitude. Most of the improvements have resulted from better hardware and better programming techniques. Only a small part is the result of modifications to the organization of the machine. Even today, general purpose computers on the market for the most part still follow the basic organization of the von Neumann machine and perform calculations sequentially.

Such organizational modifications that have been made for the most part involve an increase in parallel processing capability. These departures from the classic von Neumann organization have generally followed one of two basic paths. in one, several (von Neumann) general purpose computers are tied together into a multiprocessing system. In this type of configuration, different branches of one program (or several independent programs) are executed independently. That is, different multiprocessor elements execute different instructions on different data bases. It is this extremely free structure that limits the size of multiprocessing systems, as expressed by the number of individual processors. This is due both to the expense (each element is a general purpose computer) and to the software problem of tying many sophisticated processors together so freely.

There remain many general problems, both military and commercial, that cannot be treated with currently available sequential processors or multiprocessors. Examples include air traffic control, numerical weather forecasting through solution of the atmospheric equations, atomic reactor calculations, mapping and charting, complex pattern recognition, ocean surveillance, and signal processing. The inability to meet these real time processing requirements on a sequential machine relates to the intrinsic limitations of switching speeds, memory speeds, and signal propagation delays.

it is noted that all of the problems mentioned above have one thing in common. They require a processing system in which a large number of processing elements execute the same instruction on different data bases. This is the second path taken in departures from von Neumann machine organization. One way of describing the degree of parallelism in such a machine is by the size of the individual data bases. For example, in one type, each processing element works on a 2,048 word (64 bit) local memory. Clearly, overall processing capability reaches a maximum when each processing element works on a data base of only one word (assuming that the processing capability of each element remains constant).

One way of providing this "one on one processing capability is through use of associative (or content addressable) memories and processors. Associative memories have been generally described as a collection of data storage elements which can be accessed in parallel on the basis of data content as opposed to conventional addressing techniques. ln most configurations, the basic operation of such a device is the exact match search, in which all associative elements are simultaneously compared to a given word (the comparand) and response store bits" are set to indicate which words in associative memory are equal to the comparand. A response resolution mechanism then supplies the control device with a list of addresses that have "responded. Usually, a mask register is used to inhibit portions of the comparand, thus permitting only certain bits to be used as the search criteria.

Extending the comparand to include the ability to use previously set response hits as criteria for additional searches, as well as adding to the basic hardware of the associative memory, permits a wide range of increased capability. Single or compound searches that might be implemented include:

al not equal lemma greater than lessthanorequai gleaterthanorequal maximum value minimum value between limits not between limits next higher next lower etc.

If arithmetic and multi-write circuitry are also included, operation such as write-on-match and add-onmatch may also be made available.

An additional level of sophistication and processing capability is available through use of a variable instruction technique in which the search criteria for each syllable can be specified independently and simultaneously. (A syllable may be defined as a contiguous sequence of bits within a word.) Suppose, for example, one has a 48 bit associative machine divided (through hardware constraints) into six eight bit syllables. Then in one cycle one might search for all words having their first syllable equal to the first syllable of the comparand, their second syllable greater than the second syllable of the comparand, etc. Such a device may be called a fixed syllable, variable instruction associative processor which has been described in NRL Report 6,961, A Fast, Flexible, Highly Parallel Associative Processor by John E. Shore and Frank A. Polkinghorn, Jr.

SUMMARY OF THE INVENTION The system of this invention includes an associative memory, its control registers and a Micro Programmed Processor (MPP) with flip flop memory to effectively drive the associative memory. The registers include the comparand (COMP), search control registers (SCI, 8C2), the output buffer (AMOB), conventional address register (AMAR), the multi operation register (MOI!) and the syllable definition register (SDR). The SDR allows redefinition of the syllable structure before each instruction. The processing is accomplished in a syllable parallel fashion with different search criteria for each syllable. This allows simple simultaneous processing in every syllable in memory, and, in limited cases multiple operations in the same syllable. These simple instructions can then be combined to form a macro-instruction in the MPP. Since the speed of each instruction is different, the timing is produced by a Clock Inhibit Network, which counts down a compiler produce period in order to optimize the eificiency of the system.

The basic circuit in this system comprises a powerful associative single bit cell which may be combined with an integral number of identical cells and implemented in Medium Scale Integration or Large Scale Integration. The basic functions of the cell are conventional read/write, comparison (greater than, less than, equal and don't care add, multi-add and multi-write. By combining these cells in different syllables (via the SDR), additional functions can be created.

The Response Store section of the associative word utilizes for its memory function several cells as outliend above with additional external circuitry to perform slightly different functions than the non-Response Store bits. There are an arbitrary number of Response Bits and a single Response Resolution Bit (RRB).

The RRB is passed on to a Response Resolution Network (RRN) which is unique in two respects. First, it produces the address of the lowest addressed responder directly as a pointer back to the associative word as well as a pointer to a large non-associative auxiliary file. Second, the delay time is proportional to |og (M) for a memory of M words, where B is most conveniently chosen to be a power of 2 that divides M. This technique is not only very fast but also inexpensive in terms of the number of gates required per word.

OBJECTS OF THE INVENTION It is therefore an object of the present invention to provide an advanced parallel processing capability in the form of a general purpose associative processor that can solve many problems in real time.

Another object is to provide a system that has sufficient switching speeds, memory speeds and signal propagation relays to efi'ectively solve various types of problems.

Still another object is to provide a computer system that operates upon data while in memory without first reading the data out of memory.

Yet another object is to provide a computer system which has the capacity to perform an operation on many data words simultaneously.

A further object is to provide a computer system which is independent of the length of each data word and the total number of words.

Another object is to provide a computer system in which syllable specifications are controlled by software in which syllables are allocated on a real time basis as a function of the data being processed.

While still another object is to facilitate a plurality of simultaneous operations in a specifically short time.

Other objects and advantages of the invention will become more fully apparent from the following description of the annexed drawing.

BRIEF DESCRIPTION OF THE DRAWINGS FIG. I is a simplified block diagram representing the various elements of the associative processor system.

FIG. 2 is a block diagram illustrating the relationship between a main processor (general practice computer) and the associative processor.

FIG. 3 illustrates the circuitry for one bit of a multibit associative chip.

FIG. 4 illustrates a summary chart of the control lines for the associative chip.

FIG. 5 illustrates a schematic of the addition circuit included in the circuitry of FIG. 3.

FIG. 6 is an algorithm flow chart for the multiplication of all associative memory words in the comparand.

FIG. 7 is an algorithm flow chart for greater than" searches.

FIG. 8 illustrates the logic circuitry for a two bit response store.

FIG. 9 is a circuitry for addressing the response resolution bit of the response store of the associative processor for a base 2 response resolution network.

FIGS. 10a 10c are circuitry for decoding one bit of a required address in the Response store network.

FIG. 11 illustrates the primary circuit of a base 4 response resolution network for a memory of 4 words.

FIGS. [20 12d illustrate the secondary circuitry for decoding each bit in the address of the lowest responding word slice.

FIG. 13 illustrates the associative processor in combination with a high performance clock and a clock inhibit network (CIN).

FIG. 14 illustrates a circuit for implementation of vertical information flow.

FIG. 15 illustrates a summary chart for the Response store control lines.

DESCRIPTION OF THE DRAWINGS Now referring to the drawings, there is shown in FIG. 1 the various elements of the associative processor for carrying out the functions of this invention. The associative processor (AP) 30 includes a Syllable Definition Register (SDR) 31, a Comparand (COMP) 32, a Search Command One (SCI) 33, a Search Command Two (8C2) 34, a Multi-Operation Register (MOR) 35, an Associative Memory Output Buffer (AMOB) 36, and an Associative Memory Address Register (AMAR) 37. These provide seven (flip flop) registers under the control of a Micro-Program Processor (MPP) 38, FIG. 2, that combines with the Associative Memory (AM) 41 to form the Associative Processor, AP. The inclusion of the MPP does not increase the associative capabilities of the AM since the seven registers illustrated in FIG. 1 could be directly under the control of the main processor 42. However, including the additional level of control represented by the MPP enables frequently used complex associative operations to proceed in parallel to the continuing operation of the main processor. In such a configuration, an associative macro-instruction passed to the MPP from the main processor will initiate a microprogram located in the MPP. Also, this configuration enables one to exploit the speed of the AP by operating the MPP-AM combination with a cycle time independent of that required by the main processor. The relationship described above is indicated by the block diagram in FIG. 2.

The key design element of the Associative Processor, AP, FIG. 1 is the integrated circuit chip which forms its primary component. Each chip contains a number of contiguous bits from the same word-slice. The AM 41 is constructed by horizontally and vertically stacking" this basic chip. The Response Store (RS) section 43 is formed by adding external logic to the basic chip and stacking" this combination.

The number of bits per chip, N, is a variable, as N increases, so does the number of gates and control lines per chip. The limit can be determined on purely technological grounds.

The Solid State Chip The system illustrated presented requires 36N 2 gates and 6N 12 control lines per chip. Thus, a conveniently sized chip of four hits will contain I46 NAND gates and 38 control lines. A schematic of one bit in this associative chip is shown in FIG. 3 and the various control lines are summarized in FIG. 4. The clock, power, and ground lines are not included in FIG. 3 for simplification of the drawing and all gates are NAND gates.

It is likely that the circuit in FIG. 3 can be further minimized. Also, in terms of another canonical logic operation (NOR) or some technologically possible combination of operations, it may be possible to arrive at lower gate and control line requirements. Therefore, it is convenient to specify the chip design as a set of Boolean equations. Such a specification is given below.

In terms of the control lines described above and the internal lines of FIG. 3, the Boolean equations for the associative chip of FIG. 3 are as follows:

In the above,

Each of the flip flop registers and their operation will now be described below.

In the following, a word-slice refers to the contents exposed by an horizontal cross section through the right hand side of the AM of FIG. 1. Similarly, a "bitslice" refers to the contents exposed by a vertical cross section through FIG. I.

SYLLABLE DEFINITION REGISTER The function of the syllable definition register (SDR) 31 is to indicate the intra-syllable limits for purposes of addition and of non-equal comparisons (less than; greater than). Therefore, the SDR should contain a l in the lowerest numbered (least significant) bit of each syllable.

There are several reasons for including this variable (or floating) syllable capability. First of all, since syllables can be allocated according to the requirements of the specific application, one is able to make efficient use of the AM word-slice length. Second, since the SDR is under software control, one can go a step further and allocate syllables on a real time basis as a function of the data being processed. Finally, as will be seen in later discussions, special purpose manipulation of the SDR results in a marked increase in the overall associative capability of the AP.

For many applications, a variable represented by one word in AM has many parameters associated with it. As a particular example, suppose a sixteen bit machine is being used and five parameters in each word have been stored according to the following:

bits I 3: P,, bits 4 5: P bits 6 8: P,, bits 9 ll: P,

Bits l4 -l6 are taken up by the Response Store (RS) 43, the operation of which is described below. Bit positions are labelled from right to left as follows:

i, i, ill

ceding example, the SDR would be loaded as follows:

XXXOIUIIIUOIOIOOI The Comparand The Comparand (COMP) 32 contains the reference word for an associative search. In addition, during a multi-add operation, it is the addend and during a multi-write operation it acts as the input buffer. The exact nature of each of these operations is contingent on the contents of the other control register which will be set forth later. The Search Command Registers and the Associative Search Operation When a search command is given (by raising a line from the MPP) every word in AM is simultaneously compared to the COMP. Each of these comparisons is performed in a bit parallel fashion. There are four basic types of searches, each of which can be specified for any sequence of bits (including a sequence of one). These are:

I. greater than the COMP 2. less than the COMP 3. exactly matching the COMP 4. don't care The selection of one of the above is determined, on a bit by bit basis, by the contents of the search control (SC) registers 33 and 34. The code for this specification is given as follows:

8 01 S02 'Iy e of basic search 0 1 Greater i; an the COMP.

1 0 Less than the COMP.

1 1 Exact match to the COMP.

0 0 Anything will do (don't care).

A contiguous series of either search control type I or type 2 carries the implication that the specified series of bits are to be considered as one value throughout AM for purposes of the search. In the event that such a series crosses an intrasyllable division, the SDR automatically splits it into two separate series. If a particular word in AM satisfies all criteria specified by the COMP, SCI, and SC! the word-slice is said to "respond," and a bit is set in the Response store (RS) section of the word-slice.

In a particular search, requiring one or more matches in the RS section is equivalent to including the criteria of a previous search or series of searches. It is this capability that enables one to build complex search types (e.g. between limits) from the basic set.

The number of bits in RS is a hardware variable as far If, for example, P, and P, are spatial coordinates and as the present system is concerned. While two bits will P, is time, then this is equivalent to specifying a particusuffice to accommodate any length series of ANDed lar two-dimensional area and a specific time period. searches, each conditional on the results of the previ- Suppose, in addition, that the code for P: has been conous search, additional RS bits are required if one wishes structed in such a way that all AM words of present into maintain a record of when (i.e. between which searterest will have a l in bit 5. For example, if P, were ches) each word-slice ceased to satisfy a continuing seused to indicate aircraft type in an ATC application, bit ries of searches. Thus, the RS should be made long 5 might distinguish between military and non-military enough to record the longest expected series of the lattraffic. In order to raise the associative search line to ter type. If only a count of the number of satisfied searthe AM the control registers are loaded as follows:

MOR lXlXlXIXlXIXlXlXlXlXIXIXIXIXlXlXj ches is required, this can be accomplished by utilizing As a result, bit number 14 is set in every word with bit a' syllable within each word-slice. 5 equal to "l" and with As mentioned above, when a word-slice responds to P B, a particular search, a bit is set in the RS section of that and P C, word-slice. The particular bit to be set is specified for 1- F. each search by the occurrence of the Response Bit con- In order to search again, the control registers are retrol register pattern shown as follows: loaded as follows:

8C2 IOIOIIIIIIIOIOIOITI1l1l0|0l0|0|0l The search criterion that bit 14 be equal to I" re- COMP 1 I stricts the set of possible solutions to those words in AM that have already satisfied the search criteria de- Scz fined above. Thus, as a result of the second search, bit number 16 (the RRB) is set in every word that satisfies The intersection of this bit-slice with every word-slice the Prevlous Search and the cmerlai defines the Response Bit (RB) for the search being per- P, A, formed. It is noted that this combination of a 1" in the and P, D, COMP with a don 't care specification would not oth- P E erwise be useful. This combination is equivalent to the original specifi- The extreme left-hand bit in R8 is called the Rewith sponse Resolution Bit (RRB). Its output is connected of responding ords- Thlegotal tltme reto the Response Resolution Network (RRN The RRN lured to set the RS to e a ye Is is de i d to su l the MP? with a list of addresses only AM cycle time independent of AM me) plus of 5:21,, mi that have a e in the the time it takes to fill the COMP, SCI, and scz before RRB. Thus, whenever one is actually interested in each f This can be reduced by working with those word-slices responding to a particudoubly sung each Parameter to a low mews lar search one should specify the RRB as the Response 9 of P the upper and lower limits at an obm' "m Inch. vlous increase in hardware cost.

It is noted that only the "greater than" and less In order to clarify these procedures, reference is search ypes are dependent on the comems of i the 3 .cxample Suppose that AM mkd the SDR. The exact nature of this dependence is best with Information Illustrated above. Suddenly one beexplained in connection with the digital design of the comes Interested in that set of AM words satisfying associafive chip as at forth below However. the analy ,4 P B sis of this dependence results in the addition of two C P, D, basic search types: less than or equal; and greater than E 1, F. or equal; resulting in a total of six basic search types.

Multi-Operations and the Multi-peration Register The multi-write and multi-add operations are symmetric in two respects. First of all, when either is initi- SDR COMP

SCI

MOR

ated, those bits in the COMP, SCI, and SCI that correspond to the RS (bits 14-16 in the example set forth above) search the RS with the search specification code shown for the Response Store. The operation is then executed for those word-slices responding to this RS search. Thus, like the associative search, the two multi-operations can be conditioned on the results of any previous set of associative searches.

The second symmetry of the multi-operations concern the Multi-Operation Register (MOR) 35. A write or add operation for any word-slice involves that wordslice and portions of the COMP, in particular those bits of the COMP which have a "l" in the corresponding bit of the MOR. Those COMP bits with an "0" in the. corresponding MOR bit are ignored during the multioperation.

The search portion of either multi-operation does not SDR COMP

SCI

SCZ

result in the setting of 3 RS bit (the RB). This is because the RS search does not extract any additional information from the AM.

The Multi-Write 45 In most cases, the multi-write operation is used to copy certain portions of the COMP simultaneously into every word in AM that has satisfied a particular combination of previously executed searches. If a particular word-slice satisfies the RS search criteria, each bit of 50 the COMP which has the corresponding MOR bit set to l is copied into the word in AM. Those bits in AM which correspond to bits in MOR set to 0" are left unaltered. This procedure includes the RS section of every word-slice. 55

Including the RS in the multi-write operation implements a convenient, one Cycle clear Response Store operation, as shown:

I l l l lfllolololololol0101010|0 rity is maintained by operation of the SDR, which inhibits carry propagation across each intra syllable division. The addition does not include the RS.

Continuing the previous example, instead of performing the multiwrite described in the last section,

one might decide to replace 1, and 1, according to the following:

P, C P,

P, C5 Pg That is, in all words selected as described above; where C, and C, are constants. This may be accomplished by loading the control registers as follows:

iFiii'fa'Tfu 10 9 8 7 s 5 4 a 2 1 [1] 0| OIXIXIXlXlXlXlXlXlXlXlXIXIXl and raising the multiadd line.

In general, one can perform 2.: complement integer arithmetic on a syllable-by-syllable basis (as defined by the SDR). If required, overflows can be detected by an algorithm similar to that used with a conventional 2s complement adder. In the AP this detection can be performed simultaneously for every syllable in every wordslice.

Conventionally Addressed Operations The AM can also be accessed by means of the AMAR 37 and a conventional address selection network. When the read line is raised, that AM word-slice whose address is located in the AMAR is gated (in parallel) into the AMOB. When the write line is raised, the COMP is written into the AM word-slice whose address is located in the AMAR. Finally, when the add line is raised, the COMP is added (in parallel) to that AM word-slice whose address is located in the AMAR. In both the add and the write operation, the COMP is masked by the MOR as described above. Simultaneous Operations The AP has been designed so that many combinations of the operations described individually above The only pairs that are not orthogonal are those that attempt both to write and to add into the same wordslice. Later, it will be clear that the result of such an attempt will always be the logical OR of the COMP and can be performed simultaneously (from a programming the arithmetic sum of the COMP and the selected point of view). Of the six individual operations (correword-slice. As such, it is still a perfectly valid, if seldom sponding to the six lines into the AM) there are useful, operation.

6 From the above matrix, it can be seen that the asso- )=15 ciative search is orthogonal to both multi-operations. 10 The results of the two possible binary operations are possible combinations of two operations. In order to slightly different from what one might expect from conperforrn two operations simultaneously the two corresideration of the individual operations. This change has sponding lines are raised into the AM. been incorporated into the system so that the two oper- Detining each of the l5 combinations as one binary ations (search/multi-write and search/multi-add) will operation, one may state that every binary operation is be more useful. As set forth above, when executed indipossible, in the sense that unique and unambigous revidually, the two multi-operations select word-slices on sults are obtained when any two lines are raised simulthe basis of their response to the RS search. When eitaneously. Of course, not all of the binary operations ther of these mild-operations is part of a binary operaare equally useful. In general, the most useful will be tion that includes the associative search, this procedure those binary operations which are a combination of two is modified so that word-slices are selected (for the add orthogonal" single operations. Two operations may or write) on the basis of their response to the associabe said to be orthogonal" if they are functionally untive search. If a RB has been specified as set forth related, i.e. if the two have no effect on each other. The above in the control pattern, this bit will be set by the orthogonality relationships between the six single AM binary operation, just as described above in the discusoperations are expressed in matrix form as follows: sion on the SC registers and the Associative search op- MULTI- MULll- 1111.11) ADI) ADI) WRITE v1 RIIF SEARCH 111 :1111. 1 1 1 1 1 1111a... 1 1 0 1 MllL'll 111111.. 1 1 0 1 MllI/ll-W ltllF. 1 r o U 1 1 warn 1 u 1 1 s1cs1w11.- 1 1 1 1 1 As shown, l implies orthogonality, "0 implies nonorthogonal, and implies orthogonality if and only if the word-slice selected by the AMAR is not one of those responding to the RS search of the multioperation. The matrix may be understood, by applying the following principle: Single operations are of two types, those that change the (non RS) contents of AM and those that do not. If the contents of a word-slice are i5 14 13 12 ll 10 9 B 7 6 5 4 3 2 l SDR lXlXlXlOillUlOllll]![)illOIllDIOll1 SCl \(JIUIllOlOlllllIIUIOIOIDlOIDIOIOl MOB i0| 0 0 0 0 01 0 01 0|0l 01 l I l I to be change (as a write or add), they change only on Suppose a binary operation is composed of the two the trailing edge of the next clock pulse. Operations single operations 0 and 0,, which normally execute in that do not change the contents operate on the contents as they are before the next clock pulse. For example, the read and write are orthogonal. At the end of the read/write binary operation (i.e. after the next clock pulse) the COMP will have been written into the selected word-slice and the AMOB will contain the contents of the word-slice as they were before the COMP displaced them. In this manner, one sees that the only operator combinations which are not orthogonal are those in which both operations change the contents of the same word-slice.

This principle is reflected above in the matrix shown. 

1. A solid state, variable syllable, variable instruction, associative processor which comprises, a plurality of identical associative chip elements each containing an integral number of associative memory bits, a plurality of identical, vertically stacked associative processor words, said plurality of words determining any desired processor size, said words comprising a plurality of identical associative chip elements, each of said elements horizontally connected to adjacent chip elements, said plurality of horizontally connected chip elements determining any desired word size, a write bus for each word connected to each associative chip element of the word for controlling the writing of information into that word, an add bus for each word connected to each associative chip element of the word for controlling add functions within that word, a response store comprising a plurality of memory flip-flops, and for each processor word, said response store section connected to one end of its associated processor word and to the add bus and write bus of that word, said response store section simultaneously controlling each word in the parallel processing of data stored within each processor word, controlling various search operations performed simultaneously within each processor word, and stores the results of these search operations, a plurality of control flip-flop registers equal in width to the combined width of the processor word and the response store, each bit of each of said registers connected in parallel to the corresponding bit in every processor word and its response store section, said control registers defining syllable limits to be observed in any operation, specifying which syllables will participate in the various search, logical, write, multi-write, and multiadd operations, specifying the type of search for each syllable when a search operation is performed, receives data outputs from any processor word, receives data from and provides data to any device which may be using the processor, and provides data inputs to the processor, said data inputs are compared in one step and under various criteria specified by the control registers to data stored within every processor word, the results of said comparisons being stored in the response store, whereby said data inputs are in one step written into one or more processor words or portions of one or more processor words, and in one step combined with data in one or more processor words in arithmetic and logical operations, the results of said operations being stored within the processor words, and said read, write, multi-write, add, multi-add, and logical operations are each performed in only one step and combinations of said operations performed simultaneously. 